package models

import "time"

// UserCoupon 用户优惠券表
type UserCoupon struct {
	Id         int64     `json:"id" xorm:"pk autoincr"`
	UserId     int64     `json:"user_id" xorm:"not null comment('用户ID') index"`
	RuleId     int64     `json:"rule_id" xorm:"not null comment('规则ID')"`
	Type       string    `json:"type" xorm:"varchar(20) not null comment('优惠券类型')"`
	Value      int64     `json:"value" xorm:"not null comment('优惠券面值(分)')"`
	MinAmount  int64     `json:"min_amount" xorm:"not null default 0 comment('最低使用金额(分)')"`
	Status     int       `json:"status" xorm:"not null default 1 comment('状态：1未使用 2已使用 3已过期')"`
	ValidStart time.Time `json:"valid_start" xorm:"not null comment('有效期开始')"`
	ValidEnd   time.Time `json:"valid_end" xorm:"not null comment('有效期结束')"`
	UseTime    time.Time `json:"use_time" xorm:"comment('使用时间')"`
	CreateTime time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (UserCoupon) TableName() string {
	return "user_coupon"
}

// 优惠券状态常量
const (
	CouponStatusUnused  = 1 // 未使用
	CouponStatusUsed    = 2 // 已使用
	CouponStatusExpired = 3 // 已过期
)
